import Interfaz

class Alumno(object):
	def __init__(self, nombre, apellido, padron):
		self.nombre = nombre
		self.apellido = apellido
		self.padron = padron
		self.aprobadas = None
	
	def set_aprobadas(self, materias):
		self.aprobadas = materias
	
	def obtener_promedio(self):
		cantidad = len(self.aprobadas)
		sum = 0
		for m in self.aprobadas.values():
			sum += m.nota
		return float(sum)/cantidad
	
	def imprimir_materias_aprobadas(self):
		for m in self.aprobadas.values():
			print str(m)
			
	def obtener_materias_cursables(self, materias):
		cursables = []
		for m in materias.values():
			if self.es_cursable(m) and m.codigo not in self.aprobadas:
				cursables.append(str(m))		
		return cursables
	
	def es_cursable(self, materia):			
		for codigo_materia in materia.correlativas:			
			if codigo_materia not in self.aprobadas.keys():
				return False
		return True

	def __str__(self):
		return self.nombre + " " + self.apellido
